diamond ambiguity problem in java